package com.czy.owner.utils;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Point;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.support.v4.app.ActivityCompat;
import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.Selection;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import android.widget.EditText;

import com.czy.owner.R;
import com.czy.owner.db.UserHelper;
import com.czy.owner.global.Constants;
import com.czy.owner.net.utils.JsonUtil;
import com.czy.owner.ui.login.LoginActivity;
import com.czy.owner.utils.toastutil.UIToast;

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by wangyang on 2016/5/23.
 * 手机工具类
 */
public class PhoneUtils {

    /**
     * 没有网络
     */
    public static final int NETWORKTYPE_INVALID = 0;
    /**
     * wap网络
     */
    public static final int NETWORKTYPE_WAP = 1;
    /**
     * 2G网络
     */
    public static final int NETWORKTYPE_2G = 2;
    /**
     * 3G和3G以上网络，或统称为快速网络
     */
    public static final int NETWORKTYPE_3G = 3;
    /**
     * wifi网络
     */
    public static final int NETWORKTYPE_WIFI = 4;

    public static int mNetWorkType = 1;

    public static long timeDifference = 0;

    /**
     * 判断手机联网状态
     *
     * @param context
     * @return
     */
    public static boolean checkNetwork(Context context) {
        if (isNetworkConnected(context) == true) {
            //Toast.makeText(context, "当前网络不可用，请设置", Toast.LENGTH_SHORT).show();
            return isWifiConnected(context) == true || isMobileConnected(context) == true;
        } else {
            //Toast.makeText(context, "当前网络不可用，请设置", Toast.LENGTH_SHORT).show();
            return false;
        }
    }

    /**
     * 判断是否有链接的网络
     *
     * @param context
     * @return
     */
    public static boolean isNetworkConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = mConnectivityManager.getActiveNetworkInfo();
            if (networkInfo != null) {
                return networkInfo.isAvailable();
            } else {
                PhoneUtils.ShowToastMessage(context, "网络连接错误!");
            }
        }
        return false;
    }

    /**
     * 描述 判断wifi是否可用
     *
     * @param context
     * @return
     */
    public static boolean isWifiConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            if (info != null) {
                return info.isAvailable();
            }
        }
        return false;
    }

    /**
     * 描述 判断移动网络是否可用
     *
     * @param context
     * @return
     */
    public static boolean isMobileConnected(Context context) {
        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            if (info != null) {
                return info.isAvailable();
            }
        }
        return false;
    }

    /**
     * 获取手机屏幕得宽度
     *
     * @param context
     * @return
     */
    public static int getPhoneWidth(Context context) {
        Activity activity = (Activity) context;
        DisplayMetrics displayMetrics = new DisplayMetrics();
        activity.getWindow().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        return displayMetrics.widthPixels;
    }

    /**
     * 获取手机屏幕得高度
     *
     * @param context
     * @return
     */
    public static int getPhoneHeight(Context context) {
        Activity activity = (Activity) context;
        DisplayMetrics displayMetrics = new DisplayMetrics();
        activity.getWindow().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        return displayMetrics.heightPixels;
    }

    public static Point getDeviceSize(Context context) {
        WindowManager manager = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        Point point = new Point();
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
            point.x = manager.getDefaultDisplay().getWidth();
            point.y = manager.getDefaultDisplay().getHeight();
        } else {
            manager.getDefaultDisplay().getSize(point);
        }
        return point;
    }

    /**
     * 获取状态栏高度＋标题栏高度
     *
     * @param activity
     * @return
     */
    public static int getTopBarHeight(Activity activity) {
        return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
    }

    /**
     * 获取手机得设备号
     *
     * @param context
     */
    public static String getImieStatus(Context context) {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String deviceId = tm.getDeviceId();
        return deviceId;
    }

    /**
     * 验证手机格式
     */
    public static boolean isMobileNO(String mobiles) {
            /*
             * 移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
             * 联通：130、131、132、152、155、156、185、186 电信：133、153、180、189、（1349卫通）
             * 总结起来就是第一位必定为1，第二位必定为3或5或8，其他位置的可以为0-9
             */
        // String telRegex = "[1][34758]\\d{9}";// "[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
        String telRegex = "^((13[0-9])|(14[0-9])|(16[0-9])|(19[0-9])|(15[^4,\\D])|(1(7|8)[^4,\\D]))\\d{8}";// "[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
        if (TextUtils.isEmpty(mobiles))
            return false;
        else
            return mobiles.matches(telRegex);
    }


    //	验证邮箱格式

    public static boolean isEmail(String email) {

        String str = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";

        Pattern p = Pattern.compile(str);

        Matcher m = p.matcher(email);

        return m.matches();

    }

    /**
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 将px值转换为sp值，保证文字大小不变
     *
     * @param pxValue
     * @param （DisplayMetrics类中属性scaledDensity）
     * @return
     */
    public static int px2sp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }

    /**
     * 将sp值转换为px值，保证文字大小不变
     *
     * @param spValue
     * @return
     */
    public static int sp2px(Context context, float spValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }

    /**
     * 获取app版本号码
     *
     * @param context
     * @return
     */
    public static String getVersion(Context context)//获取版本号
    {
        try {
            PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            return pi.versionName;
        } catch (PackageManager.NameNotFoundException e) {
            return 0 + "";
        }
    }

    public static int getVersionCode(Context context)//获取版本号(内部识别号)
    {
        try {
            PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            return pi.versionCode;
        } catch (PackageManager.NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return 0;
        }
    }


    //Pop背景设置
    public static void backgroundAlpha(Activity activity, float bgAlpha) {
        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
        lp.alpha = bgAlpha;
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        activity.getWindow().setAttributes(lp);
    }

    public static boolean checkLicensePlate(String licensePlate) {
        /*
         车牌号格式：汉字 + A-Z + 5位A-Z或0-9
        （只包括了普通车牌号，教练车和部分部队车等车牌号不包括在内）
         */
        String licensePlateRegex = "[A-Z]{1}[A-Z_0-9]{4}[A-Z_0-9警学]{1}";
        if (TextUtils.isEmpty(licensePlate)) return false;
        else return licensePlate.matches(licensePlateRegex);
    }


    public static void ShowToastMessage(Context context, String str) {
        UIToast.showBaseToast(context, str, true, UIToast.NONE, UIToast.NONE, null, UIToast.NONE, UIToast.NONE, UIToast.NONE, R.style.AnimationToast);
    }

    public static void checkCallPermission(Context mContext, String phoneNumber) {
        Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber.replaceAll("转", ";")));
        if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber.replaceAll("转", ";")));
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mContext.startActivity(intent);
        } else {
            mContext.startActivity(intentPhone);
        }
    }

    public static String checkResponseFlag(Activity activity, String result) {
        MyLog.i("checkResponseFlag", result);
        String exp = JsonUtil.getJsonValuesString(result, "exp");
        boolean flag = JsonUtil.getJsonValuesBoolean(result, "flag");
        int errorCode = JsonUtil.getJsonValuesInt(result, "errorCode");
        if (flag) {
            return JsonUtil.getJsonValuesString(result, "data");
        } else {
            // TODO 检查错误码,如是110 登录超时
            switch (errorCode) {
                case 110:
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_AUTH_KEY_STORAGE);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_SESSION_INFO_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_USER_INFO_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_OWNER_INFO_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_CHAIN_STORES_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_BINDSTOREID);
                    SharedPreferencesUtils.remove(Constants.SHARED_PREFERENCES_KEY_IS_STORE_BIND);
                    ActivityHelper.getInstance().finishAllActivity();
                    UserHelper.getInstance().setUserInfoModel(activity, null);
                    UserHelper.getInstance().setSessionInfoModel(activity, null);
                    UserHelper.getInstance().setOwnerInfoModel(activity, null);
                    UserHelper.getInstance().setmChainStoresList(activity, null);
                    SharedPreferencesUtils.setParam(activity, Constants.SHARED_PREFERENCES_KEY_IS_STORE_BIND_DIALOG, 0);
                    UserHelper.getInstance().setIsLogined(false);
                    activity.startActivity(new Intent(activity, LoginActivity.class));
                    break;
                default:
                    PhoneUtils.ShowToastMessage(activity, StringUtils.isEmpty(exp) ? "连接服务器失败" : exp);
            }
            return null;
        }
    }

    /**
     * 有接口不用接口提示语，
     * hedepu
     */
    public static String checkResponseFlagLogin(Activity activity, String result) {
        MyLog.i("checkResponseFlag", result);
        String exp = JsonUtil.getJsonValuesString(result, "exp");
        boolean flag = JsonUtil.getJsonValuesBoolean(result, "flag");
        int errorCode = JsonUtil.getJsonValuesInt(result, "errorCode");
        if (flag) {
            return JsonUtil.getJsonValuesString(result, "data");
        } else {
            // TODO 检查错误码,如是110 登录超时
            switch (errorCode) {
                case 110:
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_AUTH_KEY_STORAGE);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_SESSION_INFO_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_USER_INFO_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_OWNER_INFO_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_CHAIN_STORES_MODEL);
                    SharedPreferencesUtils.remove(UserHelper.getInstance().getUserAccount() + Constants.SHARED_PREFERENCES_KEY_BINDSTOREID);
                    SharedPreferencesUtils.remove(Constants.SHARED_PREFERENCES_KEY_IS_STORE_BIND);
                    ActivityHelper.getInstance().finishAllActivity();
                    UserHelper.getInstance().setUserInfoModel(activity, null);
                    UserHelper.getInstance().setSessionInfoModel(activity, null);
                    UserHelper.getInstance().setOwnerInfoModel(activity, null);
                    UserHelper.getInstance().setmChainStoresList(activity, null);
                    SharedPreferencesUtils.setParam(activity, Constants.SHARED_PREFERENCES_KEY_IS_STORE_BIND_DIALOG, 0);
                    UserHelper.getInstance().setIsLogined(false);
                    activity.startActivity(new Intent(activity, LoginActivity.class));
                    break;
//                default:
//                    PhoneUtils.ShowToastMessage(activity, StringUtils.isEmpty(exp) ? "连接服务器失败" : exp);
            }
            return null;
        }
    }

    public static boolean checkVINisLegal(String vin) {
        if (vin.length() > 0 && vin.length() <= 17) {
            return true;
        } else {
            return false;
        }

//        Map<Character, Integer> kv = new HashMap<>();
//        Map<Integer, Integer> wv = new HashMap<>();
//        for (int i = 0; i < 10; i++) {
//            kv.put(String.valueOf(i).charAt(0), i);
//        }
//
//        kv.put('a', 1);
//        kv.put('b', 2);
//        kv.put('c', 3);
//        kv.put('d', 4);
//        kv.put('e', 5);
//        kv.put('f', 6);
//        kv.put('g', 7);
//        kv.put('h', 8);
//        kv.put('j', 1);
//        kv.put('k', 2);
//        kv.put('l', 3);
//        kv.put('m', 4);
//        kv.put('n', 5);
//        kv.put('p', 7);
//        kv.put('q', 8);
//        kv.put('r', 9);
//        kv.put('s', 2);
//        kv.put('t', 3);
//        kv.put('u', 4);
//        kv.put('v', 5);
//        kv.put('w', 6);
//        kv.put('x', 7);
//        kv.put('y', 8);
//        kv.put('z', 9);
//
//        wv.put(1, 8);
//        wv.put(2, 7);
//        wv.put(3, 6);
//        wv.put(4, 5);
//        wv.put(5, 4);
//        wv.put(6, 3);
//        wv.put(7, 2);
//        wv.put(8, 10);
//        wv.put(10, 9);
//        wv.put(11, 8);
//        wv.put(12, 7);
//        wv.put(13, 6);
//        wv.put(14, 5);
//        wv.put(15, 4);
//        wv.put(16, 3);
//        wv.put(17, 2);
//        if (null == vin) {
//            return false;
//        } else if (vin.trim().length() == 17) {
//            vin = vin.trim().toLowerCase();
//            char[] codes = vin.toCharArray();
//
//            int resultInCode = 0;
//            if ("0123456789".contains(vin.subSequence(8, 9))) {
//                resultInCode = Integer
//                        .valueOf(vin.subSequence(8, 9).toString());
//            } else {
//                if ("x".equals(vin.subSequence(8, 9))) {
//                    resultInCode = 10;
//                } else {
//                    return false;
//                }
//            }
//
//            int total = 0;
//            for (int i = 1; i < codes.length + 1; i++) {
//                char code = codes[i - 1];
//
//                if (kv.containsKey(code)) {
//                    if (9 == i) {
//                        continue;
//                    } else {
//                        total += kv.get(code) * wv.get(i);
//                    }
//                } else {
//                    return false;
//                }
//            }
//            return resultInCode == total % 11;
//        } else {
//            return false;
//        }
    }


    /**
     * 定义script的正则表达式
     */
    private static final String REGEX_SCRIPT = "<script[^>]*?>[\\s\\S]*?<\\/script>";
    /**
     * 定义style的正则表达式
     */
    private static final String REGEX_STYLE = "<style[^>]*?>[\\s\\S]*?<\\/style>";
    /**
     * 定义HTML标签的正则表达式
     */
    private static final String REGEX_HTML = "<[^>]+>";
    /**
     * 定义空格回车换行符
     */
    private static final String REGEX_SPACE = "\\s*|\t|\r|\n";
    private static final String REGEX_SPACE2 = "&emsp;|&thinsp;|&zwnj;|&zwj;|&nbsp;";

    public static String delHTMLTag(String htmlStr) {
        // 过滤script标签
        Pattern p_script = Pattern.compile(REGEX_SCRIPT, Pattern.CASE_INSENSITIVE);
        Matcher m_script = p_script.matcher(htmlStr);
        htmlStr = m_script.replaceAll("");
        // 过滤style标签
        Pattern p_style = Pattern.compile(REGEX_STYLE, Pattern.CASE_INSENSITIVE);
        Matcher m_style = p_style.matcher(htmlStr);
        htmlStr = m_style.replaceAll("");
        // 过滤html标签
        Pattern p_html = Pattern.compile(REGEX_HTML, Pattern.CASE_INSENSITIVE);
        Matcher m_html = p_html.matcher(htmlStr);
        htmlStr = m_html.replaceAll("");
        // 过滤空格回车标签
        Pattern p_space = Pattern.compile(REGEX_SPACE, Pattern.CASE_INSENSITIVE);
        Matcher m_space = p_space.matcher(htmlStr);
        htmlStr = m_space.replaceAll("");


        // 过滤空格回车标签
        Pattern p_space2 = Pattern.compile(REGEX_SPACE2, Pattern.CASE_INSENSITIVE);
        Matcher m_space2 = p_space2.matcher(htmlStr);
        htmlStr = m_space2.replaceAll("");

        return htmlStr.trim(); // 返回文本字符串
    }

    public static void setTime(String serviceTime) {
        if (!StringUtils.isEmpty(serviceTime) && Long.parseLong(serviceTime) != 0) {
            //每次网路原因延迟时间有误差
            if (timeDifference == 0 || Math.abs(Long.parseLong(serviceTime) - System.currentTimeMillis()) - timeDifference >= 15000)
                timeDifference = Long.parseLong(serviceTime) - System.currentTimeMillis();
        }
        Log.i("----------------------", timeDifference + "");
    }

    public static long getTime() {
        return System.currentTimeMillis() + timeDifference;
    }
    /**
     * 解析出url参数中的键值对
     * 如 "index.jsp?Action=del&id=123"，解析出Action:del,id:123存入map中
     * @param URL  url地址
     * @return  url请求参数部分
     */
    public static Map<String, String> URLRequest(String URL)
    {
        Map<String, String> mapRequest = new HashMap<String, String>();

        String[] arrSplit=null;

        String strUrlParam=TruncateUrlPage(URL);
        if(strUrlParam==null)
        {
            return mapRequest;
        }
        //每个键值为一组 www.2cto.com
        arrSplit=strUrlParam.split("[&]");
        for(String strSplit:arrSplit)
        {
            String[] arrSplitEqual=null;
            arrSplitEqual= strSplit.split("[=]");

            //解析出键值
            if(arrSplitEqual.length>1)
            {
                //正确解析
                mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);

            }
            else
            {
                if(arrSplitEqual[0]!="")
                {
                    //只有参数没有值，不加入
                    mapRequest.put(arrSplitEqual[0], "");
                }
            }
        }
        return mapRequest;
    }
    /**
     * 去掉url中的路径，留下请求参数部分
     * @param strURL url地址
     * @return url请求参数部分
     */
    private static String TruncateUrlPage(String strURL)
    {
        String strAllParam=null;
        String[] arrSplit=null;

        strURL=strURL.trim().toLowerCase();

        arrSplit=strURL.split("[?]");
        if(strURL.length()>1)
        {
            if(arrSplit.length>1)
            {
                if(arrSplit[1]!=null)
                {
                    strAllParam=arrSplit[1];
                }
            }
        }

        return strAllParam;
    }

    public static void userNameLengthContrl(final Context context, final EditText editText){
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                userNameLengthCheck(context,editText);
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
    }

    public static void userNameLengthCheck(Context context ,EditText editText){
        int maxlength = 11;
        String editStr = editText.getText().toString();
        if(editStr.length() > maxlength){
            PhoneUtils.ShowToastMessage(context, "昵称不能超过11位");
            editText.setText(editStr.substring(0 , editStr.length()-1));
            editText.setSelection(editStr.length()-1);
        }

    }

    /**最多10个汉字，20个字符*/

//    public static void userNameLengthCheck(Context context ,EditText editText) {
//        int mTextMaxlenght = 0;
//        Editable editable = editText.getText();
//        String str = editable.toString().trim();
//        //得到最初字段的长度大小，用于光标位置的判断
//        int selEndIndex = Selection.getSelectionEnd(editable);
//        // 取出每个字符进行判断，如果是字母数字和标点符号则为一个字符加1，
//        //如果是汉字则为两个字符
//        for (int i = 0; i < str.length(); i++) {
//            char charAt = str.charAt(i);
//            //32-122包含了空格，大小写字母，数字和一些常用的符号，
//            //如果在这个范围内则算一个字符，
//            //如果不在这个范围比如是汉字的话就是两个字符
//            if (charAt >= 32 && charAt <= 122) {
//                mTextMaxlenght++;
//            } else {
//                mTextMaxlenght += 2;
//            }
//            // 当最大字符大于20时，进行字段的截取，并进行提示字段的大小
//            if (mTextMaxlenght > 20) {
//
//                // 截取最大的字段
//                String newStr = str.substring(0, i);
//                editText.setText(newStr);
//
//                // 得到新字段的长度值
//                editable = editText.getText();
//                int newLen = editable.length();
//                if (selEndIndex > newLen) {
//                    selEndIndex = editable.length();
//                }
//                // 设置新光标所在的位置
//                Selection.setSelection(editable, selEndIndex);
//                PhoneUtils.ShowToastMessage(context, "昵称不能超过10个汉字或20个字符");
//            }
//        }
//
//
//    }
}
